/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.business.customer.core.domain.weixin.miniapp;

import info.peigen.hotpot.common.core.enums.Gender;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;

import java.util.Date;

/**
 * <b>(WxMiniappUser)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2022/6/6
 */
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
public class WxMiniappUser {
    /**
     * 调用[wx.login]后得到
     * 客户登录凭证（有效期五分钟）。开发者需要在开发者服务器后台调用 auth.code2Session，使用 code 换取 openid、unionid、session_key 等信息
     */
    String loginCode;
    /** 客户在当前小程序的唯一标识 */
    String openid;
    /** 微信开放平台帐号下的唯一标识 */
    String unionId;
    /** 登录的会话密钥 */
    String sessionKey;
    String nickName;
    String avatarUrl;
    /**
     * 性别
     * 0：未知
     * 1：男性
     * 2：女性
     */
    Gender gender;
    String country;
    String province;
    String city;
    @Builder.Default
    String language = "zh_CN";
    /** 上一次登录时间 */
    Date lastLoginTime;
}
